package fun.zhufn.oldcomm.model.dao;

import fun.zhufn.oldcomm.model.bo.json.JsonList;
import fun.zhufn.oldcomm.model.bo.json.JsonMap;
import fun.zhufn.oldcomm.model.bo.json.MyJsonParser;

/**
 * 全局数据访问对象
 */
public class GlobalDataDao {
    private JsonMap data = null;
    private static final GlobalDataDao INSTANCE = new GlobalDataDao();

    private GlobalDataDao(){}

    public static GlobalDataDao getInstance() {
        return INSTANCE;
    }

    /**
     * @param data 从JsonMap加载数据
     */
    public void loadData(JsonMap data) {
        this.data = data;
    }

    public JsonMap getData() {
        return data;
    }

    /**
     * @return 获得用户列表
     */
    public JsonList getUserJsonList() {
        return (JsonList) data.get("users");
    }

    /**
     * @return 获得老人列表
     */
    public JsonList getOldJsonList() {
        return (JsonList) data.get("olds");
    }

    /**
     * @return 获得线路列表
     */
    public JsonList getPathJsonList() {
        return (JsonList) data.get("paths");
    }

    /** 修改用户列表
     * @param ul 更新的列表
     */
    public void updateUserJsonList(JsonList ul) {
        data.put("users", ul);
    }

    /** 修改老人列表
     * @param ol 更新的列表
     */
    public void updateOldJsonList(JsonList ol) {
        data.put("olds", ol);
    }

    /** 修改线路列表
     * @param ol 更新的列表
     */
    public void updatePathJsonList(JsonList ol) {
        data.put("paths", ol);
    }

    /** 保存文件
     * @throws Exception 文件错误
     */
    public void saveToFile() throws Exception {
        MyJsonParser.writeToFile("save.json", data);
    }
}
